import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)

const store = new Vuex.Store({
	state: {
		teacherList: [],	//教师列表
		teacherDetailsList: {},	//教师详情
		courseDetailsList: {},	//课程详情
		bannerList: [],	//banner列表
		succeedList: '',	//报名成功人员信息
		coursesList: [],	//课程列表
		courseCategoryObj: {},	//课程分类
		myApplyList: [],	//我的预约
		newsCategoryList: [],	//新闻分类
		newsList: [],	//新闻列表
		newsDetailsList: {},	//新闻详情
		meObj: {},	//基础信息
		studentsList: [],	//我的学生列表
		ordersList: [],	//订单列表
		// token: ''
		childTotalList: [],	//某孩子的课时统计
		childRecordList: [],	//某孩子的上课记录
	},
	mutations:{
		// 保存教师列表
		saveTeachers(state, data){
			state.teacherList = data
		},
		// 保存教师详情
		saveTeacherDetails(state, data){
			state.teacherDetailsList = data
		},
		// 保存课程详情
		saveCourseDetails(state, data){
			state.courseDetailsList = data
		},
		// 保存banner列表
		saveBanner(state, data){
			state.bannerList = data
		},
		// 保存报名成功人员信息
		saveSucceed(state, data){
			state.succeedList = data
		},
		// 保存课程列表
		saveCourses(state, data){
			state.coursesList = data
		},
		// 保存课程分类
		saveCourseCategory(state, data){
			state.courseCategoryObj = data
		},
		// 保存我的预约
		saveMyApply(state, data){
			state.myApplyList = data
		},
		// 保存新闻分类
		saveNewsCategory(state, data){
			state.newsCategoryList = data
		},
		// 保存新闻列表
		saveNews(state, data){
			state.newsList = data
		},
		// 保存新闻详情
		saveNewsDetails(state, data){
			state.newsDetailsList = data
		},
		// 保存基础信息
		saveMe(state, data){
			state.meObj = data
		},
		// 保存我的学生列表
		saveStudents(state, data){
			state.studentsList = data
		},
		// 保存订单列表
		saveOrders(state, data){
			state.ordersList = data
		},
		// 保存token
		// saveToken(state, data){
		// 	state.token = data
		// }
		// 保存某孩子的课时统计
		saveChildTotal(state, data){
			state.childTotalList = data
		},
		// 保存某孩子的上课记录
		saveChildRecord(state, data){
			state.childRecordList = data
		}
	}, 
	actions: {
		// 获取教师列表
		sendTeachers(store, data){
			store.commit('saveTeachers', data)
		},
		// 获取教师详情
		sendTeacherDetails(store, data){
			store.commit('saveTeacherDetails', data)
		},
		// 获取课程详情
		sendCourseDetails(store, data){
			store.commit('saveCourseDetails', data)
		},
		// 获取banner列表
		sendBanner(store, data){
			store.commit('saveBanner', data)
		},
		// 获取报名成功人员信息
		sendSucceed(store, data){
			store.commit('saveSucceed', data)
		},
		// 获取课程列表
		sendCourses(store, data){
			store.commit('saveCourses', data)
		},
		// 获取课程分类
		sendCourseCategory(store, data){
			store.commit('saveCourseCategory', data)
		},
		// 获取我的预约
		sendMyApply(store, data){
			store.commit('saveMyApply', data)
		},
		// 获取新闻分类
		sendNewsCategory(store, data){
			store.commit('saveNewsCategory', data)
		},
		// 获取新闻列表
		sendNews(store, data){
			store.commit('saveNews', data)
		},
		// 获取新闻详情
		sendNewsDetails(store, data){
			store.commit('saveNewsDetails', data)
		},
		// 获取基础信息
		sendMe(store, data){
			store.commit('saveMe', data)
		},
		// 获取我的学生列表
		sendStudents(store, data){
			store.commit('saveStudents', data)
		},
		// 获取订单列表
		sendOrders(store, data){
			store.commit('saveOrders', data)
		},
		// 获取token
		// sendToken(store, data){
		// 	store.commit('saveToken', data)
		// },
		// 获取某孩子的课时统计
		sendChildTotal(store, data){
			store.commit('saveChildTotal', data)
		},
		// 获取某孩子的上课记录
		sendChildRecord(store, data){
			store.commit('saveChildRecord', data)
		}
	},
	getters: {
		// 过滤出所有孩子的名字组成的数组
		filterStudentName(state){
			let arr = []
			state.studentsList.forEach(item => {
				arr.push(item.student_name)
			})
			return arr
		}
	}
})

export default store